import { userList, userCount } from '../../../request/api';
const state = {
    userlist: [],//管理员列表
    count: 5,//总条数
    pageSize: 3,//每页展示的条数
    pageNum: 1,//页码
}

const mutations = {
    USERLIST(state, payload) {
        state.userlist = payload;
    },
    COUNT(state, payload) {
        state.count = payload;
    },
    CHANGENUM(state, payload) {
        state.pageNum = payload
    }

}

const actions = {
    // 获取管理员列表行动
    getUserListAction(context) {
        userList({
            size: context.state.pageSize,//展示的条数
            page: context.state.pageNum,//第几页数据
        }).then(res => {
            if (res.code == 200) {
                // 获取成功
                // 当删除非第一页且是当前最后一条数据时,出现bug,它依然去获取当前页码的数据,导致了当前页显示空数据,无法查找到数据,属兔数据列表没有更新
                // 解决:将pageNum-1 
                // 条件:当pagNum!=1时并且返回的list为null时
                if (context.state.pageNum != 1 && res.list == null) {
                    // 改变页码将pageNum-1  并且重新渲染
                    context.dispatch('changePageNum',context.state.pageNum - 1)
                }
                // 渲染列表
                context.commit('USERLIST', res.list);
            }
        })
    },
    // 获取总条数行动
    getCountAction({commit}) {
        userCount().then(res => {
            if (res.code == 200) {
                // 获取成功
                commit('COUNT', res.list[0].total)
            }
        })
    },
    // 切换页码 
    changePageNum(context, payload) {
        // 修改页码
        context.commit('CHANGENUM', payload)
        // 重新渲染当前页码的数据
        context.dispatch('getUserListAction')
    }

}

const getters = {
    getUserList(state) {
        return state.userlist
    },
    getCount(state) {
        return state.count;
    },
    getPageSize(state) {
        return state.pageSize
    }
}

export default {
    state,
    mutations,
    actions,
    getters,
    namespaced: true
}

